home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
COMMUNIC
/
H191.ZIP
/
CA29-3.EXE
/
DD.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1992-08-28
|
3KB
|
120 lines
SET TTHRU OFF ; Allow type ahead
;
; ----- Dialing directory list
; Commenced: 8/92 R.McG
; ----------------------------------------------------------------
; Note: This script searches the current directory for *.DIR
; files, and displays a menu of the results.
; ----------------------------------------------------------------
;
; First, draw a box
;
LEGEND " Select a dialing directory"
ON ESCAPE GOSUB EXIT
;
; Start by opening a window
;
GOSUB Window ; Open a window
;
; Now, look for a keypress
;
FFIRST "*.DIR" ; Search for directories
IF FAILED GOTO EndLoop ; Exit if none found
N10 = 0 ; Index of files found
SET FLAG(0) OFF ; Flag -> pass1/pass2
;
; Build the menu
;
Loop:
IF N10 GE 20 GOTO Keyget
FNEXT S10[N10] ; Read next directory
IF FAILED GOTO EndLoop
N0 = N10\10 ; Row # 0-9
IF N10 LT 10
ATSAY N0+2,15 (defa) S10[N10]
ELSE
ATSAY N0+2,45 (defa) S10[N10]
ENDIF
INC N10
GOTO Loop ; And loop
;
; End of loop. After pass on current subdir, if no
; *.DIR's are found, try on the COM-AND= subdir...
;
EndLoop:
IF N10 NE 0 GOTO KeyGet ; If we have any fnames, stop here
IF FLAG(0) GOTO Exit ; There are no directories
SET FLAG(0) ON ; Mark search in COM-AND= subdir
ENVIRON S0 "COM-AND=" ; Get COM-AND= environment variable
IF NOT FOUND GOTO Exit ; No action if no environment variable
LENGTH S0 N0 ; Get its length
DEC N0 ; Point to last char in string
IF NOT STRCMP S0(N0:N0) "\" S0 = S0&"\"
FFIRST S0&"*.DIR" ; Concatenate path and name
IF FAILED GOTO Exit ; Exit if none found
GOTO Loop
;
; Subroutine to intercept ESCAPE
;
Exit:
WCLOSE ALL ; Restore saved screen area
STACK "^@ " ; "^@ " -> Alt-d (open DD after script)
EXIT ; No window foolishness
;
; Invalid input
;
Invalid:
SOUND 100,100 ; Bronx cheer
;
; Fetch a response
;
Keyget:
KEYGET S0 ; Set for current execution
IF NOT FIND "1234567890abcdefghij" S0 N0 GOTO Invalid
IF N0 GE N10 GOTO Invalid
;
; Load the new directory
;
LOAD DIAL S10[N0] ; Load new directoryiable found
GOTO Exit
;
; Open a window and display a menu
;
Window:
WOPEN 0 10 16 70 (defa)
ATSAY 0 12 (default) " COM-AND Dialing directories "
ATSAY 16 30 (default) " Press ESC to cancel "
ATSAY 2 12 (default) "1) "
ATSAY 3 12 (default) "2) "
ATSAY 4 12 (default) "3) "
ATSAY 5 12 (default) "4) "
ATSAY 6 12 (default) "5) "
ATSAY 7 12 (default) "6) "
ATSAY 8 12 (default) "7) "
ATSAY 9 12 (default) "8) "
ATSAY 10 12 (default) "9) "
ATSAY 11 12 (default) "0) "
ATSAY 2 42 (default) "A) "
ATSAY 3 42 (default) "B) "
ATSAY 4 42 (default) "C) "
ATSAY 5 42 (default) "D) "
ATSAY 6 42 (default) "E) "
ATSAY 7 42 (default) "F) "
ATSAY 8 42 (default) "G) "
ATSAY 9 42 (default) "H) "
ATSAY 10 42 (default) "I) "
ATSAY 11 42 (default) "J) "
S0 = "_DIRF" ; Take current directory
UPPER S0 ; Upper case
LENGTH S0 N0 ; Take its length
IF N0 GT 46 S0 = S0(N0-46:N0-1)
ATSAY 13 12 (default) "Currently: "*S0
ATSAY 14 12 (default) "Select the directory: "
RETURN